#include "led8.h"
#include "timetik/timetik.h"
/**
 * 按键控制灯
 * @param scanmode 0:扫描1次 1:无数次
 */
void led_key_board(int scanmode)
{
    int scan = 1;
    while (scan)
    {
        if (key1 == 0 || key2 == 0 || key3 == 0 || key4)
        {
            // 消抖10ms
            delay_ms(10);

            if (key1 == 0)
            {
                // 按k1就控制灯1
                LED1 = !LED1;
            }
            if (key2 == 0)
            {
                // 二进制显示1111 1111
                P2++;
            }
            if (key3 == 0)
            {
            }
            if (key4 == 0)
            {
            }
        }
        scan = scanmode;
    }
}

/**
 * 按键右向或者左向流水
 */
void led_right_key_board()
{
    unsigned int kbp_times = 0;
    // 上电第一个亮起
    P2 = ~(0x01);
    while (1)
    {
        // 方向<<<<<<
        if (key1 == 0)
        {
            // 消除抖动
            delay_ms(10);
            if (key1 == 0)
            {
                // 按键一次，向左边移动一次
                kbp_times++;
                if (kbp_times >= 8)
                {
                    kbp_times = 0;
                }
                P2 = ~(0x01 << kbp_times);
            }
        }

        // 方向>>>>>>
        if (key2 == 0)
        {
            // 消除抖动
            delay_ms(10);
            if (key2 == 0)
            {
                // 按键一次，向右边移动一次
                if (kbp_times == 0)
                {
                    kbp_times = 7;
                }
                else
                {
                    kbp_times--;
                }
                P2 = ~(0x01 << kbp_times);
            }
        }
    }
}

void led1_timetik()
{
    // 初始化定时器
    Timer0Init();
    while (1)
    {
    }
}

void timer0_isr(void) __interrupt 1
{
    static unsigned int mis = 0;
    TL0 = 0x18; // 设置定时初值
    TH0 = 0xFC; // 设置定时初值
    if(mis==1000){
        //1s
        mis=0;
        LED1=!LED1;
    }
     mis++;
}